<?php
class CalificacionesresponsabilidadesController extends AppController {

	var $name = 'Calificacionesresponsabilidades';	
	var $helpers = array('Access');

	function index() {
	//	Verificacion de sesion del sistema		
		if(!$this->Access->getMy('username')){
			$this->Session->setFlash(__('Por favor inicie sesion', true));
			$this->redirect(array('controller'=>'convocatorias','action' => 'publicaciones'));
		}
		$this->Calificacionesresponsabilidade->recursive = 0;
		$this->set('calificacionesresponsabilidades', $this->paginate());
	}

	function view($id = null) {
	//	Verificacion de sesion del sistema		
		if(!$this->Access->getMy('username')){
			$this->Session->setFlash(__('Por favor inicie sesion', true));
			$this->redirect(array('controller'=>'convocatorias','action' => 'publicaciones'));
		}
		if (!$id) {
			$this->Session->setFlash(__('Invalid calificacionesresponsabilidade', true));
			$this->redirect(array('action' => 'index'));
		}
		$this->set('calificacionesresponsabilidade', $this->Calificacionesresponsabilidade->read(null, $id));
	}

	function add($convocatoria = null, $postulado = null) {
	//	Verificacion de sesion del sistema		
		if(!$this->Access->getMy('username')){
			$this->Session->setFlash(__('Por favor inicie sesion', true));
			$this->redirect(array('controller'=>'convocatorias','action' => 'publicaciones'));
		}
		if (!empty($this->data)){
			$form = $this->data; $i=0; $guardado = true;
			$puntaje_experiencia = 0;
			$postulado = $this->Calificacionesresponsabilidade->Postulado->find('first',array('conditions'=>array('Postulado.user_id'=>$this->Access->getMy('id'), 'Postulado.convocatoria_id'=>$form['Calificacionesresponsabilidade']['convocatoria_id'])));
			foreach ($form['responsabilidades'] as $responsabilidad){
				if($guardado){			
					$registro['Calificacionesresponsabilidade'] = array('postulado_id'=>$postulado['Postulado']['id'],
																		'responsabilidade_id'=>$responsabilidad, 'puntaje'=>$form['puntajes'][$i]);
					$this->Calificacionesresponsabilidade->create();
					if(!$this->Calificacionesresponsabilidade->save($registro))
						$guardado=false;
					else 
						$puntaje_experiencia+=$form['puntajes'][$i];
					$i++;
				}
			}
			if($guardado){
				//Aqui se actualiza el puntaje de la experiencia y el academico				
				$puntaje_academico = 0;				
				
				//die(var_dump($postulado));
				
				$perfil = $this->Calificacionesresponsabilidade->Postulado->Convocatoria->read('perfile_id',$form['Calificacionesresponsabilidade']['convocatoria_id']);
				
				$nivel_pedido = $this->Calificacionesresponsabilidade->Postulado->Convocatoria->Perfile->read('nivel_estudios',$perfil['Convocatoria']['perfile_id']);
				
				//Puntaje Academico
				$nivel = array('Bachiller'=>1, 'Tecnico'=>2, 'Tecnologico'=>3, 'Profesional'=>4,'Especializacion'=>5,'Maestria'=>6,'Doctorado'=>7);
				
				$nivel_pedido = $nivel[$nivel_pedido['Perfile']['nivel_estudios']];
				
				$nivel_postulado = $nivel[$this->Access->getMy('nivel_estudio')];
				
				if($nivel_postulado>$nivel_pedido){
					$sobra = abs($nivel_pedido-7);
					$puntaje_academico = 100/$sobra;
					$puntaje_academico +=100;
				}else if($nivel_postulado<$nivel_pedido){
					$puntaje_academico = ($nivel_postulado*100)/$nivel_pedido;					
				}else if($nivel_postulado=$nivel_pedido){
					$puntaje_academico = 100;
				}else{
					$puntaje_academico = 0;
				}
				
				$this->Calificacionesresponsabilidade->Postulado->id = $postulado['Postulado']['id'];
				$this->Calificacionesresponsabilidade->Postulado->saveField("puntaje_academico", $puntaje_academico);
				
				$this->Calificacionesresponsabilidade->Postulado->saveField("puntaje_experiencia", (($puntaje_experiencia/($i))*100)/5);
				
				
				$this->Session->setFlash(__('Evaluaci&oacute;n Guardada', true));
				$this->redirect(array('controller'=>'convocatorias','action' => 'publicaciones'));
			}else{
				$this->Session->setFlash(__('Evaluaci&oacute;n no guardada', true));
			}
			
		}
		$postulado_activo = $this->Calificacionesresponsabilidade->Postulado->find('first',array('conditions'=>array('Postulado.user_id'=>$this->Access->getMy('user_id'))));
		$convocatoria_activa = $this->Calificacionesresponsabilidade->Postulado->Convocatoria->find('first',array('fields'=>array('Convocatoria.perfile_id'),'conditions'=>array('Convocatoria.id'=>$convocatoria)));
		$perfil = $this->Calificacionesresponsabilidade->Postulado->Convocatoria->Perfile->find('first',array('fields'=>array('Perfile.cargo'),'conditions'=>array('Perfile.id'=>$convocatoria_activa['Convocatoria']['perfile_id'])));
		$this->set(compact('postulado_activo', 'convocatoria_activa', 'perfil'));
	}

	function edit($id = null) {
	//	Verificacion de sesion del sistema		
		if(!$this->Access->getMy('username')){
			$this->Session->setFlash(__('Por favor inicie sesion', true));
			$this->redirect(array('controller'=>'convocatorias','action' => 'publicaciones'));
		}
		if (!$id && empty($this->data)) {
			$this->Session->setFlash(__('Invalid calificacionesresponsabilidade', true));
			$this->redirect(array('action' => 'index'));
		}
		if (!empty($this->data)){
			if ($this->Calificacionesresponsabilidade->save($this->data)) {
				$this->Session->setFlash(__('The calificacionesresponsabilidade has been saved', true));
				$this->redirect(array('action' => 'index'));
			} else {
				$this->Session->setFlash(__('The calificacionesresponsabilidade could not be saved. Please, try again.', true));
			}
		}
		if (empty($this->data)) {
			$this->data = $this->Calificacionesresponsabilidade->read(null, $id);
		}
		$postulados = $this->Calificacionesresponsabilidade->Postulado->find('list');
		$responsabilidades = $this->Calificacionesresponsabilidade->Responsabilidade->find('list');
		$this->set(compact('postulados', 'responsabilidades'));
	}

	function delete($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('Invalid id for calificacionesresponsabilidade', true));
			$this->redirect(array('action'=>'index'));
		}
		if ($this->Calificacionesresponsabilidade->delete($id)) {
			$this->Session->setFlash(__('Calificacionesresponsabilidade deleted', true));
			$this->redirect(array('action'=>'index'));
		}
		$this->Session->setFlash(__('Calificacionesresponsabilidade was not deleted', true));
		$this->redirect(array('action' => 'index'));
	}
}
?>